/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Telas;

import Beans.BeanCidade;
import CRUD.CRUDCidade;
import ClassesExtras.LetrasMaiusculas;
import Conexao.ConexaoBanco;
import java.awt.Color;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Marcos
 */
public class Jp_CadastroCidade extends javax.swing.JPanel {

    DefaultTableModel TMCidade = new DefaultTableModel(null, new String[]{"Código", "Cidade", "Estado"}) {// Faz a sobreposição de método e permite tbm a instancia de classe abstrata, quando implementado seus métodos
        @Override
        public boolean isCellEditable(int row, int column) {
            return false; //Não deixar editar uma linha da JTable
//            return super.isCellEditable(row, column);
        }
    };
    public Connection conexao;
    Object[] btSimNao = {"Sim", "Não"};
    List<BeanCidade> ListaCidade;

    /**
     * Creates new form Jp_CadastroCidade
     */
    public Jp_CadastroCidade() throws SQLException {
        initComponents();
        AlinhaColunaJTable();
        jComboBoxEstado.setSelectedItem("PR");
        jTextFieldCidade.grabFocus();
        this.conexao = ConexaoBanco.getConexao();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabelCodigo = new javax.swing.JLabel();
        jTextFieldCodigo = new javax.swing.JTextField();
        jButtonIncluir = new javax.swing.JButton();
        jButtonAlterar = new javax.swing.JButton();
        jLabelCidade = new javax.swing.JLabel();
        jTextFieldCidade = new LetrasMaiusculas();
        jButtonExcluir = new javax.swing.JButton();
        jLabelEstado = new javax.swing.JLabel();
        jComboBoxEstado = new javax.swing.JComboBox();
        jLabelBarraStatus = new javax.swing.JLabel();
        jLabelCamposObrigatorios = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTableConsultaCidade = new javax.swing.JTable();

        setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabelCodigo.setText("Código:");

        jTextFieldCodigo.setEnabled(false);

        jButtonIncluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Incluir.png"))); // NOI18N
        jButtonIncluir.setMnemonic('I');
        jButtonIncluir.setText("Incluir");
        jButtonIncluir.setToolTipText("Incluir");
        jButtonIncluir.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseDragged(java.awt.event.MouseEvent evt) {
                jButtonIncluirMouseDragged(evt);
            }
        });
        jButtonIncluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonIncluirActionPerformed(evt);
            }
        });

        jButtonAlterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Alterar.png"))); // NOI18N
        jButtonAlterar.setMnemonic('A');
        jButtonAlterar.setText("Alterar");
        jButtonAlterar.setToolTipText("Alterar");
        jButtonAlterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAlterarActionPerformed(evt);
            }
        });

        jLabelCidade.setText("*Cidade:");

        jTextFieldCidade.setVerifyInputWhenFocusTarget(false);
        jTextFieldCidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextFieldCidadeKeyPressed(evt);
            }
        });

        jButtonExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Excluir.png"))); // NOI18N
        jButtonExcluir.setMnemonic('E');
        jButtonExcluir.setText("Excluir");
        jButtonExcluir.setToolTipText("Excluir");
        jButtonExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonExcluirActionPerformed(evt);
            }
        });

        jLabelEstado.setText("Estado:");

        jComboBoxEstado.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PR", "PB", "PA", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SE", "SP", "TO" }));

        jLabelBarraStatus.setFont(new java.awt.Font("sansserif", 1, 12)); // NOI18N
        jLabelBarraStatus.setForeground(new java.awt.Color(255, 0, 51));

        jLabelCamposObrigatorios.setFont(new java.awt.Font("sansserif", 1, 12)); // NOI18N
        jLabelCamposObrigatorios.setText("* Campos Obrigatórios a serem preechidos");

        jTableConsultaCidade.setModel(TMCidade);
        jTableConsultaCidade.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTableConsultaCidadeMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jTableConsultaCidade);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 678, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabelCodigo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jLabelCidade)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldCidade)
                        .addGap(18, 18, 18)
                        .addComponent(jLabelEstado)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jComboBoxEstado, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jButtonIncluir, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jButtonAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jButtonExcluir, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jLabelBarraStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 426, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelCamposObrigatorios))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelCodigo)
                    .addComponent(jLabelCidade)
                    .addComponent(jTextFieldCidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelEstado)
                    .addComponent(jComboBoxEstado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButtonAlterar)
                    .addComponent(jButtonIncluir)
                    .addComponent(jButtonExcluir))
                .addGap(7, 7, 7)
                .addComponent(jLabelBarraStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelCamposObrigatorios)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 374, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void jButtonIncluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonIncluirActionPerformed
        if (jTextFieldCidade.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "O campo cidade precisa ser preenchido!", "Atenção", JOptionPane.WARNING_MESSAGE);
            jTextFieldCidade.setBackground(new Color(255, 204, 204));
            jTextFieldCidade.grabFocus();
        } else {
            validacidadecadastro();            
        }
    }//GEN-LAST:event_jButtonIncluirActionPerformed
    private void jButtonIncluirMouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButtonIncluirMouseDragged
        //jButtonIncluir.setLocation(jButtonIncluir.getX() + evt.getX(), jButtonIncluir.getY() + evt.getY());
    }//GEN-LAST:event_jButtonIncluirMouseDragged

    private void jTextFieldCidadeKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextFieldCidadeKeyPressed
        if (!"".equals(jTextFieldCidade.getText())) {
        } else {
            jTextFieldCidade.setBackground(new Color(255, 255, 255));
        }
        try {
            listacidade();
        } catch (SQLException ex) {
            Logger.getLogger(Jp_CadastroCidade.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(Jp_CadastroCidade.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jTextFieldCidadeKeyPressed

    private void jTableConsultaCidadeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableConsultaCidadeMouseClicked
        if (evt.getClickCount() == 2) {
            carregardados();
        }
    }//GEN-LAST:event_jTableConsultaCidadeMouseClicked

    private void jButtonAlterarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAlterarActionPerformed
        if ("".equals(jTextFieldCodigo.getText())) {
            JOptionPane.showMessageDialog(null, "Selecione uma cidade para ser alterada!", "Atenção", JOptionPane.WARNING_MESSAGE);
            jTableConsultaCidade.grabFocus();
        } else if (jTextFieldCidade.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "O campo cidade precisa ser preenchido!", "Atenção", JOptionPane.WARNING_MESSAGE);
            jTextFieldCidade.setBackground(new Color(255, 204, 204));
            jTextFieldCidade.grabFocus();
        } else {
            validacidadealtera();
        }
    }//GEN-LAST:event_jButtonAlterarActionPerformed

    private void jButtonExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonExcluirActionPerformed
        if ("".equals(jTextFieldCodigo.getText())) {
            JOptionPane.showMessageDialog(null, "Selecione uma cidade para ser excluída!", "Atenção", JOptionPane.WARNING_MESSAGE);
            jTableConsultaCidade.grabFocus();
        } else {
            int i = JOptionPane.showOptionDialog(this, "Deseja remover a cidade?", "Confirmação", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, btSimNao, btSimNao[1]);
            if (i == JOptionPane.YES_OPTION) {
                remove();
            }
        }
    }//GEN-LAST:event_jButtonExcluirActionPerformed
    public void listacidade() throws SQLException, ParseException {
        CRUDCidade CRUDCid = new CRUDCidade();
        ListaCidade = CRUDCid.getListaCidade("%" + jTextFieldCidade.getText() + "%");
        mostraCidade(ListaCidade);
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonAlterar;
    private javax.swing.JButton jButtonExcluir;
    private javax.swing.JButton jButtonIncluir;
    private javax.swing.JComboBox jComboBoxEstado;
    private javax.swing.JLabel jLabelBarraStatus;
    private javax.swing.JLabel jLabelCamposObrigatorios;
    private javax.swing.JLabel jLabelCidade;
    private javax.swing.JLabel jLabelCodigo;
    private javax.swing.JLabel jLabelEstado;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTableConsultaCidade;
    public javax.swing.JTextField jTextFieldCidade;
    public javax.swing.JTextField jTextFieldCodigo;
    // End of variables declaration//GEN-END:variables

    private void limpardados() {
        jTextFieldCodigo.setText(null);
        jTextFieldCidade.setText(null);
        jComboBoxEstado.setSelectedItem("PR");
        jTextFieldCidade.grabFocus();
    }

    private void AlinhaColunaJTable() {
        int col = 0;
        jTableConsultaCidade.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Selecionar somente uma linha da JTable
        jTableConsultaCidade.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //barra horizontal na JTable 
        jTableConsultaCidade.getColumnModel().getColumn(col++).setPreferredWidth(100); // Acertar Tamanho de cada coluna
        jTableConsultaCidade.getColumnModel().getColumn(col++).setPreferredWidth(400);
        jTableConsultaCidade.getColumnModel().getColumn(col++).setPreferredWidth(110);
    }

    public void carregardados() {
        jTextFieldCodigo.setText(String.valueOf(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getCod_cidade()));
        jTextFieldCidade.setText(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getDen_cidade());

        if ("AC".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(0);
        }
        if ("AL".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(1);
        }
        if ("AP".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(2);
        }
        if ("AM".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(3);
        }
        if ("BA".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(4);
        }
        if ("CE".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(5);
        }
        if ("DF".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(6);
        }
        if ("ES".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(7);
        }
        if ("GO".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(8);
        }
        if ("MA".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(9);
        }
        if ("MT".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(10);
        }
        if ("MS".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(11);
        }
        if ("MG".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(12);
        }
        if ("PR".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(13);
        }
        if ("PB".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(14);
        }
        if ("PA".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(15);
        }
        if ("PE".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(16);
        }
        if ("PI".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(17);
        }
        if ("RJ".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(18);
        }
        if ("RN".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(19);
        }
        if ("RS".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(20);
        }
        if ("RO".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(21);
        }
        if ("RR".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(22);
        }
        if ("SC".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(23);
        }
        if ("SE".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(24);
        }
        if ("SP".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(25);
        }
        if ("TO".equals(ListaCidade.get(jTableConsultaCidade.getSelectedRow()).getEstado())) {
            jComboBoxEstado.setSelectedIndex(26);
        }
    }
    
    public void validacidadecadastro() {
        String cidade = jTextFieldCidade.getText().trim();        
        String estado = jComboBoxEstado.getSelectedItem().toString();
        String sql = "select den_cidade from cidade where den_cidade = ? and estado = ?";
        try {
            PreparedStatement stmt = this.conexao.prepareStatement(sql);
            stmt.setString(1, cidade);
            stmt.setString(2, estado);
            ResultSet rs = stmt.executeQuery();

            if (rs.next()) {
                JOptionPane.showMessageDialog(null, "Cidade já cadastrada!", "Atenção", JOptionPane.WARNING_MESSAGE);
                limpardados();
                listacidade();
            } else {
                cadastro();
            }
        } catch (SQLException ex) {
            Logger.getLogger(Fr_Principal.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(Jp_CadastroCidade.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void validacidadealtera() {
        String cidade = jTextFieldCidade.getText().trim();        
        String estado = jComboBoxEstado.getSelectedItem().toString();
        String sql = "select den_cidade from cidade where den_cidade = ? and estado = ?";
        try {
            PreparedStatement stmt = this.conexao.prepareStatement(sql);
            stmt.setString(1, cidade);
            stmt.setString(2, estado);
            ResultSet rs = stmt.executeQuery();

            if (rs.next()) {
                JOptionPane.showMessageDialog(null, "Cidade já cadastrada!", "Atenção", JOptionPane.WARNING_MESSAGE);
                limpardados();
                listacidade();
            } else {
                altera();
            }
        } catch (SQLException ex) {
            Logger.getLogger(Fr_Principal.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(Jp_CadastroCidade.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void cadastro() {
        try {
            BeanCidade BC = new BeanCidade();
            //BC.setCod_cidade(Integer.valueOf(jTextFieldCodigo.getText()));
            BC.setDen_cidade(jTextFieldCidade.getText());
            BC.setEstado(jComboBoxEstado.getSelectedItem().toString());
            CRUDCidade dao = new CRUDCidade();
            dao.adiciona(BC);
            limpardados();
            listacidade();
            jLabelBarraStatus.setText("Incluido com sucesso!!!");
            threadR(jLabelBarraStatus);
        } catch (SQLException ex) {
            Logger.getLogger(Jp_CadastroPessoa.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(Jp_CadastroCidade.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void altera() {
        BeanCidade BC = new BeanCidade();
        BC.setCod_cidade(Integer.valueOf(jTextFieldCodigo.getText()));
        BC.setDen_cidade(jTextFieldCidade.getText());
        BC.setEstado(jComboBoxEstado.getSelectedItem().toString());
        CRUDCidade dao = null;

        try {
            dao = new CRUDCidade();
            dao.altera(BC);
            jLabelBarraStatus.setText("Alterado com sucesso!!!");
            limpardados();
            listacidade();
            threadR(jLabelBarraStatus);
        } catch (SQLException ex) {
            Logger.getLogger(Jp_CadastroCidade.class
                    .getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(Jp_CadastroCidade.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void remove() {
        BeanCidade BC = new BeanCidade();
        BC.setCod_cidade(Integer.valueOf(jTextFieldCodigo.getText()));
        BC.setDen_cidade(jTextFieldCidade.getText());
        BC.setEstado(jComboBoxEstado.getSelectedItem().toString());
        CRUDCidade dao = null;

        try {
            dao = new CRUDCidade();
            dao.remove(BC);
            jLabelBarraStatus.setText("Excluído com sucesso!!!");
            limpardados();
            listacidade();
            threadR(jLabelBarraStatus);
        } catch (SQLException ex) {
            Logger.getLogger(Jp_CadastroCidade.class
                    .getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(Jp_CadastroCidade.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void mostraCidade(List<BeanCidade> ListaCidade) {
        if (TMCidade == null) {
            JOptionPane.showMessageDialog(null, "teste");
        } else {
            while (TMCidade.getRowCount() > 0) {
                TMCidade.removeRow(0);
            }
            if (ListaCidade.size() < 1) {
                //JOptionPane.showMessageDialog(null, "teste2");
            } else {
                String[] linha = new String[]{null, null};
                for (int i = 0; i < ListaCidade.size(); i++) {
                    TMCidade.addRow(linha);
                    TMCidade.setValueAt(ListaCidade.get(i).getCod_cidade(), i, 0);
                    TMCidade.setValueAt(ListaCidade.get(i).getDen_cidade(), i, 1);
                    TMCidade.setValueAt(ListaCidade.get(i).getEstado(), i, 2);
                }
            }
        }
    }

    public void threadR(final JLabel label) {
        Thread tThread = new Thread(new Runnable() {
            @Override
            public void run() {                
                try {
                    Thread.sleep(5000);                    
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }              
                //repaint();    
                label.setText("");
            }
        });
        tThread.start();
    }
}
